/*
 * Copyright (C) 2008 Universidade Federal de Campina Grande
 *  
 * This file is part of OurGrid. 
 *
 * OurGrid is free software: you can redistribute it and/or modify it under the
 * terms of the GNU Lesser General Public License as published by the Free 
 * Software Foundation, either version 3 of the License, or (at your option) 
 * any later version. 
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT 
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
 * for more details. 
 * 
 * You should have received a copy of the GNU Lesser General Public License 
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 * 
 */
package org.ourgrid.worker.dao;

import java.util.concurrent.Future;

import org.ourgrid.common.executor.Executor;
import org.ourgrid.common.executor.ExecutorHandle;
import org.ourgrid.reqtrace.Req;

import br.edu.ufcg.lsd.commune.Application;
import br.edu.ufcg.lsd.commune.container.servicemanager.dao.DAO;

@Req("REQ084")
public class GridProcessDAO extends DAO {

	private ExecutorHandle currentHandle;
	
	private Executor executor;
	
	private Future<?> executionActionFuture;
	
	private boolean executionFinish;

	private Future<?> beginAllocationFuture;
	
	public GridProcessDAO(Application application) {
		super(application);
		
		executionFinish = false;
		executionActionFuture = null;
		beginAllocationFuture = null;
		currentHandle = null;
		executor = null;
	}
	
	public ExecutorHandle getCurrentHandle() {
		return currentHandle;
	}
	
	public boolean isExecutionFinish() {
		return executionFinish;
	}
	
	public void setExecutionFinish(boolean finish) {
		executionFinish = finish;
	}
	
	public void setCurrentHandle(ExecutorHandle currentHandle) {
		this.currentHandle = currentHandle;
	}

	public void setExecutor(Executor executor) {
		this.executor = executor;
	}
	
	public Executor getExecutor() {
		return executor;
	}

	public Future<?> getExecutionActionFuture() {
		return executionActionFuture;
	}
	
	public void setExecutionFuture(Future<?> future) {
		this.executionActionFuture = future;
	}

	public Future<?> getBeginAllocationFuture() {
		return beginAllocationFuture;
	}

	public void setBeginAllocationFuture(Future<?> beginAllocationFuture) {
		this.beginAllocationFuture = beginAllocationFuture;
	}
	
}
